import arbori.ArboreFunctional;
import arbori.Nod;
import functii.*;
import operatori.*;
import visitor.*;

public class Main {
	public static void main(String args[])
	{
		Nod plus=new Plus();//reprezentarea functiei x+3
		Nod xn=new Necunoscuta();
		Nod ct=new Constanta(3);
		
		plus.setFStang(xn);
		plus.setFDrept(ct);
		
		ArboreFunctional a=new ArboreFunctional(plus);
        Visitor v=new ToStringVisitor();
        Visitor v1=new DerivareVisitor();
        a.acceptVisitor(v);
        a.acceptVisitor(v1);
        System.out.println("Functia este: "+((ToStringVisitor)v).getS());
        System.out.println("Derivata functiei este: "+((DerivareVisitor)v1).getRezultat());
        
       	
	}

}
